package cn.ac.registAService.commons.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;



/**
 * @author yangzhong E-mail: zyang@ceode.ac.cn
 * @version 1.0
 * @date 2012-10-16 下午4:26:19
 * @fuction 为系统提供文件操作方面的支持
 */

public class FileTool {
	
	/**
	 * 将字符串写入到目标文件中
	 * @param dest 目标文件
	 * @param content 写入字符串内容
	 * @throws IOException 
	 */
	public static void writeFileContent(String content,String filePath) throws IOException {
		File file=new File(filePath);
		BufferedWriter writer=null;
		try 
		{
			if(!file.exists())
			{
				file.createNewFile();
			}
			
			writer = new BufferedWriter(new FileWriter(file));
			writer.write(content);
			
		} 
		catch (IOException e) 
		{
			throw new IOException("写入数据时出现IO错误，检查文件路径是否正确");
		}
		finally
		{
			if(writer!=null)
			{
				try {
					writer.close();
				} catch (IOException e) {
					throw new IOException("不能关闭输出文件");
				}
			}
		}
		
	}
	
	

	/**
	 * 将文件内容从文件src拷贝到文件dest
	 * @param  src  需要拷贝的文件
	 * @param  dest 拷贝目标地址
	
	public static void copyFile(File src, File dest) throws Exception{

		  int length=2097152;
		  if(!src.exists()){
			  throw new IOException("需要拷贝的源文件不存在：" + src.getName());
		  }
		  
		  FileInputStream in=new FileInputStream(src);
		  FileOutputStream out=new FileOutputStream(dest);
		  byte[] buffer=new byte[length];
		  int i=0;
		  while((i=in.read(buffer))!= -1){
		      out.write(buffer,0,i);
		  }
		  in.close();
		  out.close();
	}
	 */
	
	/**
	 * 读取目标文件内容
	 * @param src 需要读取的文件
	 * @return 字符串形式的文件内容
	 
	public static String getFileContent(File src) throws Exception{
		
		  String content = "", lineStr;
		  BufferedReader reader = new BufferedReader( new FileReader(src));
          
	      while((lineStr = reader.readLine())!=null){
			     content = content + "\n" + lineStr;
		  }
          reader.close();
          
		  return content;
	}
	*/
	

	
	/**
	 * 将XML document对象序列化到目标 XML文件
	 * @param desXMLPath 将Document保存的完整路径
	 * @param doc 需要保存的Document 
	 
	public static void writeDocument(Document doc, String desXMLPath) throws Exception{
		
        //输出XML配置文件
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        
        //注意此处为了防止dom4j生成XML文件中文乱码，使用的是FileOutputStream 而不是FileWriter
        XMLWriter writer = new XMLWriter(new FileOutputStream(desXMLPath), format);
        writer.write(doc);
        writer.close();
		
	}
	*/	

}
